package com.ziyueyuwen.xiniao.service;

import com.alibaba.fastjson.JSONArray;
import com.ziyueyuwen.xiniao.bean.ZyClassUser;
import com.ziyueyuwen.xiniao.bean.ZyUser;
import com.ziyueyuwen.xiniao.bean.vo.ZyClassUserVO;

import java.util.List;

/**
 * @author wancheng  on 2018/12/18.
 */
public interface ClassUserService {

    /**
     * 删除或添加学生
     * @param classId
     * @param studentAccount
     * @throws Exception
     */
    void  addOrDeleteStudent(Integer classId, List<String> studentAccount) throws Exception;

    /**
     * 班级添加学生
     * @param classId
     * @param eeoNeedInsert
     * @throws Exception
     */
    void addStudent(Integer classId, List<String> eeoNeedInsert) throws Exception;

    /**
     * 班级添加单个学生
     * @param classId
     * @param studentAccount
     * @throws Exception
     */
    void addStudentOne(Integer classId,String studentAccount) throws Exception;
    /**
     * 班级删除学生
     * @param classId
     * @param eeoNeedDelete
     */
    void deleteStudent(Integer classId,List<String> eeoNeedDelete);

    /**
     * 添加班级老师
     * @param classId
     * @param teacherAccount
     */
    void addTeacher(Integer classId,String teacherAccount);

    /**
     * 添加班主任
     * @param classId
     * @param masterAccount
     */
    void addMaster(Integer classId,String masterAccount);

    /**
     * 修改班级老师
     * @param classId
     * @param teacherAccount
     */
    void updateTeacher(Integer classId,String teacherAccount);

    /**
     * 修改班主任
     * @param classId
     * @param masterAccount
     * @throws Exception
     */
    void updateMaster(Integer classId,String masterAccount) throws Exception;

    /**
     * 获取课节老师信息
     * @param lessonId
     * @return
     */
    ZyClassUserVO getTeacher(Integer lessonId);

    /**
     * 获取老师
     * @param classId
     * @return
     */
    ZyClassUserVO getTeacherByClassId(Integer classId);

    /**
     * 获取班主任
     * @param classId
     * @return
     */
    ZyClassUserVO getMasterByClassId(Integer classId);

    /**
     * 获取班级内学生
     * @param classId
     * @return
     */
    List<ZyClassUserVO> getStudent(Integer classId);

    /**
     * 获取学生
     * @param classId
     * @param userAccount
     * @return
     */
    ZyClassUser getStudent(Integer classId,String userAccount);

    /**
     * 商品该买后自动添加学生
     * @param classId
     * @param studentAccount
     * @throws Exception
     */
    void addClassStudentFromProduct(Integer classId,String studentAccount) throws Exception;

}
